Graphical user interfaces, or GUIs, have provided an easy to use interface for computer users. It has allowed entry of information and interaction with the computer while reducing the keystrokes required and also reducing the need to remember long, and sometimes extremely complex, commands. GUIs have been implemented extensively on programmable workstations and incorporated into operating systems such as IBM's OS/2.sup.R or Microsoft's Windows.sup.R. GUIs allow users to manipulate data and cause programs to be executed or actions to occur using a mouse or other pointing device. A typical metaphor implemented in a graphical user interface is the drag/drop metaphor. The drag and drop metaphor allows a user to point to a particular object on the screen using their pointing device, grab that object and carry it over to another object that can perform an action on that object. This prior art is demonstrated in FIG. 1.
FIG. 1 depicts a simple OS/2 desktop which includes a file (102) and a shredder icon (104). If the user wishes to delete the file from his system, rather than having to go to an OS/2 window and type `delete fn.ft` where fn is the file name and ft is the file type, using a drag/drop GUI, the user can point to the file, click on the file, drag the file over to the shredder then release the file over the shredder. When the user releases the file over the shredder, it will be deleted from the system. Additionally, there are numerous other actions or activities which may be accomplished by the use of the desktop GUI. Some of these are copying files, executing programs, sending files, proofing files and embedding sections into documents.
While the GUI has been extremely helpful in the desktop environment, it has not been implemented in the Non-Programmable Terminal Environment (NPTE). In this environment, the workstation application emulates a fixed function terminal such as an IBM 3270, 5250 or a CEC VT100. A workstation running an NPTE application has no inherent knowledge or understanding of the host application or data; the workstation is only providing a virtual keyboard and alpha-numeric display screen for the host system. The workstation does not interact with the host except to provide basic keyboard and alpha-numeric display services.
The GUI drag/drop metaphor has not been implemented in NPTE applications prior to the present invention for several reasons. First, the objects of interest (host files, database records, etc.) reside on the remote host system and the workstation has no direct access to them. Second, the view of any host objects is restricted to the alpha-numeric display as presented by a host application. The workstation cannot directly query the status or nature of any host objects. Third, the host does not directly indicate the position of any objects in the display space. Host applications display information intended for manual user interaction with a keyboard. Recognition of the position and nature of host objects is difficult.
Consequently, a technique is needed that provides the ease of use of the GUI in the non-programmable terminal environment of emulators supporting legacy environment such as 3270 terminal emulators.